package com.vanysoft.business.base.team.dao;

import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.vanysoft.business.base.team.entity.TBaseTeam;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface BaseTeamMapper {
    int deleteByPrimaryKey(String teamCode);

    int insert(TBaseTeam record);

    int insertSelective(TBaseTeam record);

    TBaseTeam selectByPrimaryKey(String teamCode);

    int updateByPrimaryKeySelective(TBaseTeam record);

    int updateByPrimaryKey(TBaseTeam record);

    int queryTeamNameCount(@Param("teamName") String teamName, @Param("owner") String owner);

    List<Map<String, Object>> queryTeamUsers(Pagination pagination, @Param("teamCode") String teamCode, @Param("search") String search);

    List<Map<String, Object>> queryTeamUsers(@Param("teamCode") String teamCode, @Param("search") String search);

    List<Map<String, String>> queryUserTeam(String userId);

    /**
     * Function Name               queryTeamInfoByUserCode
     *
     * @param userCode
     * @return
     * @description TODO(根据用户代码查询所属群组信息)
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年5月27日 下午1:44:06          SharpClaw_x                     Initial
     * *********************************************************************
     */
    List<Map<String, Object>> queryTeamInfoByUserCode(String userCode);


    /**
     * Function Name               loadTeamsInfoByUserCode
     *
     * @param userCode
     * @return
     * @description 根据用户代码查询可以看到的群组信息集合
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年6月6日 下午9:14:56          SharpClaw_x                     Initial
     * *********************************************************************
     */
    List<Map<String, Object>> loadCanSeeTeamsInfoByUserCode(String userCode);


    /**
     * Function Name               queryAllTeam
     *
     * @return
     * @description (消息发送加载所有群组 - 消息中心)
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年8月29日 上午11:51:30          SharpClaw_x                     Initial
     * *********************************************************************
     */
    List<Map<String, Object>> queryAllTeam();
}